package com.chenjt.netty.two_socket.simple.server;

import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;

import java.util.UUID;

/**
 * 注释：SimpleChannelInboundHandler<String>泛型String表示客户端和服务器端通讯的数据类型是String类型
 *
 * @author chenjt
 * @date 2024/8/8 11:33
 */
public class MyServerHandler extends SimpleChannelInboundHandler<String> {

    @Override
    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {
        System.out.println(ctx.channel().remoteAddress() + "," + msg);
        // 如果需要往客户端返送多个数据，可以调用多行write()，最后再调用flush()，这里直接用writeAndFlush()
        ctx.channel().writeAndFlush("from server：" + UUID.randomUUID());
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        cause.printStackTrace();
        ctx.close();
    }

}
